<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <style>
      body {
        margin: 0;
        padding: 0;
      }

      .username {
        position: absolute;
        left: 347px;
        top: 250px;
        border-radius: 5px;
        height: 24px;
      }

      button {
        background: transparent;
        outline: none;
        border: none;
        color: white;
      }

      .heroShow {
        width: 50px;
        height: 50px;
      }

      .sub {
        position: absolute;
        left: 351px;
        top: 288px;
        width: 126px;
        color: white;
        font-weight: bold;
        font-size: 18px;
      }

      .geme {
        position: relative;
      }

      .heroBtn {
        position: absolute;
        left: 45px;
        top: 8px;
        font-size: 14px;
      }

      .skinBtn {
        position: absolute;
        top: 8px;
        left: 105px;
        font-size: 14px;
      }

      .userView {
        position: absolute;
        /* width: 80px; */
        top: 34px;
        left: 720px;
      }

      .userView img {
        width: 40px;
        height: 40px;
      }

      .chioseusername {
        display: block;
        color: rgb(255, 215, 0);
        text-align: center;
        font-size: 12px;
        font-weight: bold;
      }

      .skillsView {
        position: absolute;
        display: flex;
        flex-direction: column;
        left: 660px;
        top: 200px;
      }

      .skillsView img {
        width: 40px;
        height: 40px;
        margin-bottom: 10px;
      }

      .heroView {
        width: 120px;
        position: absolute;
        margin-top: 40px;
        margin-left: 20px;
        display: flex;
        flex-wrap: wrap;
      }

      .skinView {
        width: 130px;
        position: absolute;
        margin-top: 40px;
        margin-left: 20px;
        display: flex;
        flex-wrap: wrap;
      }

      .heroView img {
        width: 50px;
        height: 50px;
      }

      .skinView img {
        width: 50px;
        height: 50px;
      }

      .heroItem {
        margin-left: 10px;
        margin-top: 10px;
        display: flex;
        flex-direction: column;
        color: gray;
        align-items: center;
        font-size: 12px;
      }

      .skinItem {
        margin-left: 10px;
        margin-top: 10px;
        display: flex;
        flex-direction: column;
        color: gray;
        align-items: center;
        font-size: 12px;
      }

      .skinShow {
        position: absolute;
        left: 320px;
        top: 40px;
      }

      .login {
        display: block;
      }

      .game {
        display: none;
      }

      .heroContainer {
        display: block;
      }

      .skinContainer {
        display: none;
      }
    </style>
  </head>

  <body>
    <!-- 登录页面 -->
    <div class="login">
      <input class="username" /> <button class="sub">登录</button>
      <img src="./sources/login.JPG" alt="" />
    </div>
    <!-- 游戏选择页面 -->
    <div class="game">
      <button class="heroBtn">英雄</button>
      <div class="heroContainer">
        <div class="heroView">
          <div class="heroItem">
            <img src="./sources/heroes/yase1.png" />
            <span>亚瑟</span>
          </div>
          <div class="heroItem">
            <img src="./sources/heroes/yase1.png" />
            <span>亚瑟</span>
          </div>
        </div>
      </div>

      <button class="skinBtn">皮肤</button>
      <div class="skinContainer">
        <div class="skinView">
          <!-- <div class="skinItem">
                    <img src="./sources/heroes/yase1.png" />
                    <span>经典</span>
                </div>
                <div class="skinItem">
                    <img src="./sources/heroes/yase2.png" />
                    <span>死亡骑士</span>
                </div> -->
        </div>
      </div>

      <div class="skinShow">
        <img src="./sources/skins/301660.png" alt="" />
      </div>
      <div class="userView">
        <div class="heroShow">
          <!-- <img src="./sources/heroes/yase1.png" /> -->
        </div>
        <span class="chioseusername">张三</span>
      </div>

      <div class="skillsView">
        <img src="./sources/skills/11210.png" />
        <img src="./sources/skills/11220.png" />
        <img src="./sources/skills/11230.png" />
      </div>
      <div></div>
      <img src="./sources/chiose.JPG" />
    </div>
    <!-- <script src="./js/game.js"></script> -->
    <script type="module">
      // import Game from './js/game.js';
      /* 
        英雄  技能  皮肤 
        玩家  游戏管理 （组织逻辑的）

        // 单一原则 ： 一个功能 是一个类 或者是一个函数 ；
        // 只有数据
        Game{
            login(name){
                player:{
                heroes:[
                    {
                        亚瑟
                        skills:【技能一、ico:''技能二、技能三】
                        skins:【皮肤一、ico:'',皮肤二、皮肤三..】
                        
                    }
                    {
                        鲁班
                        skills:
                        skins
                    }
                ]
            }
            }
        }
        // Game -- Player -- heroes -- [{ name,skills,skins,ico}] 

        ----组织视图逻辑
        --- 把数据和视图分开
        */
      //    所有和视图有关的内容 ，和dom操作有关的内容；
      import Game from "./js/game.js";
      //实例化
      let game = new Game();
      document.onclick = function () {
        game.login("张三");
        console.log(game);
      };

      // 登录功能
      document.querySelector(".sub").onclick = function () {
        let uname = document.querySelector(".username").value;
        game.login(uname);

        document.querySelector(".login").style.display = "none";
        document.querySelector(".game").style.display = "block";

        document.querySelector(".chioseusername").innerHTML = uname;
        onload(game.player.heroes);
      };

      // 玩家数据加载
      function onload(heroes) {
        let heroViewEle = document.querySelector(".heroView");
        heroViewEle.innerHTML = "";

        heroes.forEach((hero) => {
          let heroItem = document.createElement("div");
          heroItem.classList.add("heroItem");
          heroItem.innerHTML = `<img src="${hero.ico}" />
            <span>${hero.name}</span>`;
          heroViewEle.appendChild(heroItem);

          heroItem.onclick = function () {
            let heroShowEle = document.querySelector(".heroShow");
            heroShowEle.innerHTML = `<img src="${hero.ico}" />`;
            //  渲染技能
            renderSkills(hero.skills);
            // 渲染皮肤；
            renderSkins(hero.skins);
          };
        });
      }
      //  渲染技能
      function renderSkills(skills) {
        let skillsViewEle = document.querySelector(".skillsView");
        skillsViewEle.innerHTML = "";

        skills.forEach((skill) => {
          let img = document.createElement("img");
          img.src = skill.ico;
          skillsViewEle.appendChild(img);
        });
      }

      // 渲染皮肤
      function renderSkins(skins) {
        let skinViewEle = document.querySelector(".skinView");
        let skinShowEle = document.querySelector(".skinShow");
        // 初始化 
        skinViewEle.innerHTML = "";
        skinShowEle.innerHTML = `<img src="${skins[0].img}" />`; 

        skins.forEach((skin) => {
          let skinDiv = document.createElement("div");
          skinDiv.classList.add("skinItem");
          skinDiv.innerHTML = `<img src="${skin.ico}" />
                              <span>${skin.name}</span>`;
          skinViewEle.appendChild(skinDiv);

          skinDiv.onclick = function () {
            skinShowEle.innerHTML = `<img src="${skin.img}" />`;
          };
        });
      }

      // 切换 英雄 及皮肤；
      let heroContainer = document.querySelector(".heroContainer");
      let skinContainer = document.querySelector(".skinContainer");

      document.querySelector(".heroBtn").onclick = function () {
        heroContainer.style.display = "block";
        skinContainer.style.display = "none";
      };

      document.querySelector(".skinBtn").onclick = function () {
        heroContainer.style.display = "none";
        skinContainer.style.display = "block";
      };
    </script>
  </body>
</html>
